(1) Field of the Invention
The present invention relates to a technique for managing hardware and software resources (simply referred to as the xe2x80x9cresourcesxe2x80x9d) used by an application program that a computer executes, and also relates to a digital video reproducing/recording apparatus that reproduces and records digitized video data.
(2) Description of the Prior Art
There are various application programs that are executed by a computer. During the execution of an application program, data is inputted, outputted, and transferred using resources, such as a hard disk drive, bus, and memory.
Each resource has a use tolerance limit. For example, a hard disk drive and a PCI (Peripheral Component Interconnect) bus have respective limits to a speed at which data is transferred through them. To be more specific, each of them has a limit to a data transfer bandwidth. When an application program performs synchronous processes in which data needs to be transferred at certain timings, a predetermined data transfer bandwidth should be secured for the associated resources so that the application program can normally work.
For a system under which application programs simultaneously run, if an application program ignores the other application programs and uses resources without limitation, an application program performing synchronous processes may fail to work normally.
There have been techniques suggested in order to prevent such a fail from occurring during the execution of the program. As one example of such techniques, for a system under which application programs run according to the control of a multitask OS (Operating System), each application program is programmed beforehand so that two tasks that execute synchronous processes using the same resources will not be executed in parallel and that each application program can be exclusively executed.
An explanation is given below for a case of a conventional non-linear editing system that is composed of a CPU, a memory, a hard disk drive, a bus, a monitor, and a VTR, and performs video editing. According to, for example, a control program for receiving instructions from a user, this conventional non-linear editing system is controlled so as not to allow the user to simultaneously execute a recording process and an editing process. In the recording process, video inputted by means of a VTR or the like serving as an inputting device is recorded onto a hard disk at a constant transfer speed. In the editing process, meanwhile, the video that has been recorded onto the hard disk is edited while being reproduced at a constant speed. The conventional non-linear editing system is controlled with the aim of guaranteeing a data transfer bandwidth for each of the recording and editing processes. However, there may be a case where the data transfer bandwidth is adequately broad as the limit for a resource. In this case, the system cannot make effective use of the resource.
In order to effectively use the resources on the system that executes a plurality of application programs, each application program needs to be specially programmed beforehand so as to work in cooperation with the other application programs in terms of the uses of the resources. The application programs also need to be programmed in consideration of a case where a task performing synchronous processes and a task performing asynchronous processes are simultaneously executed. To be more specific, the application program associated with the asynchronous processes needs to be programmed so that the data transfer band to be used is reduced in width. With the reduced transfer bandwidth, this application program will not interfere with the execution of the synchronous processes.
It is difficult, however, to specially program the application programs so that they will work in cooperation with each other. This is because the special programming depends on the respective limits of the resources, and in addition to this, there may be a case where the combination of the application programs to be simultaneously executed is unknown. Also, the special programming is not desirable in view of effects caused by variations in the resource environment and the program organization for the system. Such variations are ascribable to changes and additions of resources and additions of application programs.
The following is a description of a conventional digital video reproducing/recording apparatus that is used as a non-linear editing system.
FIG. 1 is a schematic block diagram of the conventional digital video reproducing/recording apparatus. The digital video reproducing/recording apparatus is composed of a hard disk 1801, CODECs 1802 and 1803, a switch 1804, a MIX circuit 1805, a D/A converter 1806, and an A/D converter 1807. The hard disk 1801 records video data that is encoded in the digital format while the CODECS 1802 and 1803 encode and decode the video data. The switch 1804 switches the direction in which signals are transferred, depending on whether the video data is currently encoded or decoded. The MIX circuit 1805 mixes two sets of video data that are respectively decoded by the CODECs 1802 and 1803. The D/A converter 1806 converts the video data mixed by the MIX circuit 1805 into analog video data and outputs the analog video data to an external television monitor or the like so that the video images are reproduced. The A/D converter 1807 converts the analog video data that is inputted by an external VTR or the like into digital video data.
FIG. 2 shows a flow of video signals (i.e., video data) in a video reproducing process performed by the conventional digital video reproducing/recording apparatus. The direction of the data flow is set by the switch 1804 so that the data is transferred from the CODEC 1802 to the MIX circuit 1805. This video reproducing process executes two-channel reproduction whereby a spatial composition is performed on two sets of video data.
FIG. 3 shows a data flow in a video recording process performed by the conventional digital video reproducing/recording apparatus. The direction of the data flow is set by the switch 1804 so that the data is transferred from the A/D converter 1807 to the CODEC 1802. Specifically, the data flows in the following order: the external VTR or the likexe2x86x92the A/D converter 1807xe2x86x92the switch 1804xe2x86x92the CODEC 1802xe2x86x92the hard disk 1801.
It should be noted here that the details of a conventional digital video reproducing/recording apparatus used as a non-linear editing system is described in the Journal of the Institute of Television Engineers (renamed the Journal of the Institute of Image Information and Television Engineers), August issue, 1996, pages 26-29.
In such conventional digital video reproducing/recording apparatus, each of the video reproducing and recording processes is exclusively executed.
The video reproducing process does not always have to perform the two-channel reproduction. Specifically, when reproduction is performed for editing news video, one-channel reproduction, whereby the video data is cut and paste regardless of the course of time, is often executed. For this case, the setting may be made beforehand so that the decoded video data received by the MIX circuit 1805 will be only from the CODEC 1803. Thus, the video data flows in the following order: the hard disk 1801xe2x86x92the CODEC 1803 the MIX circuit 1805xe2x86x92the D/A converter 1806. Therefore, there is no video data flow in the following order: the hard disk 1801xe2x86x92the CODEC 1802xe2x86x92the switch 1804xe2x86x92the MIX circuit 1805. This is to say, it does not matter how the CODEC 1802 and the switch 1804 are used during the one-channel reproduction.
However, the two-channel reproduction and the one-channel reproduction are not distinguished in the video reproducing process. For this reason, when using the conventional digital video reproducing/recording apparatus, the video recording process cannot be executed while the video reproducing process is being executed.
It is therefore a first object of the present invention to provide a resource management system that dynamically allocates various types of resources to various processes executed under the control of a multitask OS so that each resource is effectively used and that each application program is smoothly executed without having to include a process that is dependent on the respective usage limits of the resources and respective levels at which the other application programs need the resources.
It is a second object of the present invention to provide an efficient digital video reproducing/recording apparatus, as one example application for the resource management system of the present invention, that allows a video recording process to be executed in response to a request even when a video reproducing process is being currently executed.
The first object of the present invention can be achieved by a resource management system for managing use of at least one resource by a plurality of application programs by authorizing application programs to use at least part of a capacity of a resource over an authorization period, the resource management system made up of: a resource management information database for storing limit information and authorization information for each resource, the limit information for a resource showing a capacity of the resource and the authorization information for a resource showing how much capacity is currently allocated to application programs; a request receiving unit for receiving a resource use request from an application program together with period information that indicates a time period for which the application program wishes to use the resource; and a resource use managing unit for making a judgement, when the request receiving unit has received the resource use request, as to whether the requested resource is available to the application program by referring to the limit information and the authorization information, wherein when the requested resource is available, the resource use managing unit determines the authorization period based on the period information, gives authorization to the application program to use the resource for the authorization period, and updates the authorization information in accordance with the capacity allocated to the application program.
With the stated construction, the resource use managing unit centralizes the management of the usage limit and the allocated volume for each resource using the resource management information database. With the centralized management by the resource use managing unit, each application program can obtain authorization to use a resource when it is available, only by sending a resource use request to the resource use managing unit. Therefore, the application program does not have to include a process that is dependent on the respective usage limits of the resources and respective levels at which the other application programs need the resources. After obtaining authorization to use the resource, the application program appropriately executes a process, such as data transfer, using the resource. In a case where the usage limit is changed due to resource additions to the resource management system, the contents of the resource management information database may be updated in accordance with the resource additions. By this updating, all the resources can be effectively used. In particular, the authorization period (referred to as the xe2x80x9cvalid time periodxe2x80x9d in the specification) for which the resource is authorized to be allocated is determined in accordance with the time period requested by the application program. Thus, the resource is released on the expiration of the valid time period and becomes available to another application program. Accordingly, the application program sends the resource use request together with information indicating a time period required for the process, thereby preventing the resource from being unavailable to another application program for an unnecessarily long period of time.
Using the stated resource management system, the resource use managing unit may include a timer for measuring a time that has elapsed since the application program was given authorization to use the resource, and request the application program to release the resource when reference to the timer indicates that the authorization period has expired.
Also, when receiving the request from the resource use managing unit to release the resource, the application program may stop using the resource and notify the resource use managing unit that the resource has been released, and in response to the notification from the application program that the resource has been released, the resource use managing unit may update the authorization information stored in the resource management information database.
This construction can avoid a case where an application program cannot use a resource since another application program uses the resource for unnecessarily long period of time for some reason.
Using the resource management system, the resource use managing unit may receive minimum capacity information from the application program when the request receiving unit receives the resource use request, and store the minimum capacity information in the resource management information database, the minimum capacity information showing a minimum resource capacity required by the application program. When the request receiving unit has received the resource use request and the resource use managing unit judges that a first capacity that is equal to or greater than the capacity shown by the minimum capacity information is available, the resource use managing unit may give authorization to the application program to use the resource and update the authorization information to show that the application program has obtained authorization to use a part of the resource capacity amounting to the first capacity.
With the stated construction, if judging that the volume equal to or greater than the minimum volume requested by the application program can be allocated, the resource use managing unit gives authorization to the application program to use the resource by that volume. Accordingly, using the resource management system of the present invention, a control operation is realized so that, for example, an application program that reproduces video data in real time can reliably acquire necessary resources with authorization.
The resource use managing unit may receive priority information from the application program when the request receiving unit receives the resource use request, the priority information showing a level at which the resource is required by the application program, and may store the priority information in the resource management information database. The resource use managing unit may make the judgement as to whether the requested resource is available to the application program by comparing the priority information for the application program with priority information already stored in the resource management information database for another application program that has already requested the resource.
With this construction, when an application program requests for a resource while another application program is using the resource, the resource is appropriately allocated in accordance with priority that is set for each application program. The priority is set according to the level at which the application program needs the resource to execute its own process.
The priority information may include acquisition priority information and use continuation information, the acquisition priority information showing a level at which the application program needs to acquire the resource and the use continuation information showing a level at which the application program needs to continue to use the resource after obtaining authorization to use the resource. The resource use managing unit may make the judgement as to whether the requested resource is available to the application program by comparing the acquisition priority information for the application program with use continuation priority information already stored in the resource management information database for another application program that has already requested the resource and is currently using the resource.
The application program can set the acquisition priority and the use continuation priority separately according to its own process. As such, a full execution is ensured for the application program that performs a process, such as data transfer, that cannot be interrupted after the application program has acquired the resource for the process. Accordingly, using the resource management system of the present invention, the resource allocation can be controlled in accordance with the processes executed by the application programs.
Using the stated resource management system, the resource may be used as a data transfer path and the resource use managing unit may give authorization to the application program by transferring an ID that specifies current capacity information included in the authorization information, the current capacity information showing a part of the resource capacity which the application program has been given authorization to use by the resource use request. The application program may be a client program that notifies a server program of the ID transferred by the resource use managing unit so that a data transfer is executed via the server program using the resource. The server program may specify the current capacity information using the ID notified by the application program and executes the data transfer in accordance with the current capacity information.
The application program is authorized to use the resource by the specified volume. Thus, a server program may be set so as to execute data transfer directly using the resource in accordance with a volume authorized by the resource manager. The application program requests for the resource by a volume necessary for the process, and is then given authorization by the resource manager to use the resource by the necessary volume. Although the respective conditions, such as data transfer bandwidth, are different, a plurality of application programs can respectively execute processes in parallel using the same resource. To be more specific, an application program for executing asynchronous processes and an application program for executing synchronous processes can share the resource in accordance with the respective necessary conditions.
The resource may be a local bus used for transferring data, and the capacity of the resource and the amount of the capacity having been allocated to application programs each may be expressed as a data transfer bandwidth. The server program may execute the data transfer using the data transfer bandwidth shown by the current capacity information.
With the stated construction, each of a plurality of application programs that execute data transfer using a local bus, such as a PCI bus, can given a data transfer bandwidth within the limit of the data transfer bandwidth of the local bus. Therefore, the application program reliably acquires a necessary data transfer bandwidth.
The plurality of application programs may include first and second application programs. When the resource use managing unit has already given authorization to the first application to use a resource in response to a first resource use request and receives a second resource use request from the second application program to use the resource, the resource use managing unit may compare the priority information for the second application program with the priority information for the first application program. If the second application program has priority over the first application program, the resource use managing unit may reduce the capacity shown by the current capacity information for the first application program and extend the authorization period for the first application program so that the second application program is also authorized to use the resource.
As a result of the adjustment based on the priority assigned to each application program, the volume allocated to the application program that needs the resource less than the other application program is reduced and its valid time period is extended. This enables the application program that needs the resource less to complete the data transfer eventually.
When the resource use managing unit has reduced the capacity shown by the current capacity information related to the first application program and has given authorization to the second application program to use the resource in response to the second resource use request, the resource use managing unit may increase the capacity allocated to the first application program on completion of the second application program executed using the resource.
After the volume allocated to the application program that needs the resource less than the other application program is reduced as a result of the adjustment based on the priority assigned to each application program, the reduced volume is increased when the resource becomes available. This is to say, the resource allocation is dynamically controlled in accordance with the currently-allocated volume of the resource so that the resource can be effectively used.
When the request receiving unit receives the resource use request from the application program and the resource use managing unit judges that the requested resource is unavailable to the application program, the resource use managing unit may give authorization to the application program to use the resource when the resource becomes available.
With this construction, when the resource is currently unavailable, the application program can wait for the resource to be released and then uses the resource when it becomes available. This unit that the application program can reserve the resource when it is currently unavailable.
When the request receiving unit receives the resource use request from the application program and the resource use managing unit judges that the requested resource is unavailable to the application program since another application program has obtained authorization to use the resource, the resource use managing unit may notify the application program of information regarding a time to be taken before an expiration of the authorization period given to the other application program.
With the stated construction, the application program can comprehend when the resource will become available. Then, a time at which the resource will become available may be displayed on a screen for the user.
When the request receiving unit receives a resource use request from an application program to use a plurality of resources, the resource use managing unit may judge whether the requested resources are available to the application program. When the requested resources are available to the application program, the resource use managing unit may give authorization to the application program to use the resources and so updates the authorization information stored in the resource management information database.
With this centralized management of the resources, deadlock, where the application program has to wait for another application to finish using the resources, can be prevented.
When receiving a notification from the application program that a part of at least one of the resources has been released, the resource use managing unit may update the capacity shown by the authorization information in accordance with the released capacity.
With this construction, the application program can release a part of the resources that have been acquired at one time, so that another application program can use the released part.
A resource management system may manages use of at least one resource by a plurality of application programs by authorizing application programs to use at least part of a capacity of a resource over an authorization period, the resource management system made up of: a request receiving unit for receiving a reservation request from an application program together with period information specifying use start and stop times; a resource management information database for storing limit information, authorization information, and the period information, the limit information for a resource showing a capacity of the resource, and the authorization information for a resource showing how much capacity is currently allocated to application programs; a resource use managing unit for making a judgement, when the request receiving unit has received the reservation request, as to whether the requested resource will be available to the application program for the time period specified by the start and stop times by referring to the limit information, the authorization information, and the period information, wherein when the requested resource will be available for the specified time period, the resource use managing unit determines the authorization period based on the period information, gives authorization to the application program, upon the use start time, to use the requested resource for the authorization period, and updates the authorization information and the period information.
With the stated construction, each application program can reliably secure necessary resources for future use. This is to say, the application program is given a guarantee that the resources will be allocated to the application program.
The second object of the present invention can be achieved by a digital video reproducing/recording apparatus that is capable of executing a digital video reproducing process and a digital video recording process, the digital video reproducing/recording apparatus made up of: a storing unit for storing encoded digital video data; a first CODEC for performing one of (1) encoding digital video data and storing the encoded digital video data into the storing unit and (2) reading the encoded digital video data from the storing unit and decoding the read encoded digital video data; a second CODEC for reading the encoded digital video data from the storing unit and decoding the read encoded digital video data; a retaining unit for retaining information that specifies a process that is currently being executed; a request receiving unit for receiving a request for an execution of a process from a user; a judging unit for judging whether the first and second CODECs are available to both the process requested by the user and the process currently being executed, by referring to the information retained in the retaining unit; and an execution controlling unit for controlling, if the judging unit has judged that the first and second CODECs are available to both of the processes, the execution of the process requested by the user.
With the stated construction, the digital video reproducing and recording processes can be executed in parallel without any conflict.
In the digital video reproducing process, the encoded video data stored in the storing unit may be decoded either by the first and second CODECs or only by the second CODEC, the decoded video data may be mixed by a mixing circuit, and the mixed data may be converted into analog video by a D/A converter. In the digital video recording process, analog video may be converted into digital video data by an A/D converter, the digital video data may be encoded by the first CODEC, and the encoded digital video may be stored in the storing unit. The retaining unit may retain information showing a current use state for each CODEC, each current use state showing whether the corresponding CODEC is being used. The judging unit may include: a selecting unit for selecting at least one CODEC from the first and second CODECs in accordance with the process requested by the user; and an allocation judging unit for judging whether each CODEC selected by the selecting unit is available to the requested process, by referring to the information retained in the retaining unit.
With this construction, the current use state is comprehended for each of the first and second CODECs. Consequently, the digital video reproducing and recording processes can be executed in parallel, without any conflict, respectively using the first CODEC and/or the second CODEC with the least wasted volume.
Using the stated digital video reproducing/recording apparatus, the retaining unit may retain a process name of either the digital video reproducing process or the digital video recording process, for each CODEC that is currently being used. The request receiving unit may further receive maximum and minimum numbers of CODECs to be used in the requested process, the maximum number indicating a preferred number of CODECs required for the requested process and the minimum number indicating a lowest number of CODECs required for the requested process. The allocation judging unit may include: a first notifying unit for notifying, when a number of CODECs equal to the maximum are indicates as being xe2x80x9cunallocatedxe2x80x9d by the retaining unit, the execution controlling unit that the maximum number of CODECs are available for allocation to the requested process; and a second notifying unit for notifying, when the number of CODECs indicated as being xe2x80x9cunallocatedxe2x80x9d is below the maximum number but at least equal to the minimum number, the execution controlling unit that the minimum number of CODECs are available for allocation to the requested process.
When the maximum and minimum numbers of CODECs to be used in the requested process are received, each unallocated CODEC counted in the maximum or minimum number can be used in the requested process. Accordingly, the reproducing process and/or the recording process can be executed using the first CODEC and/or the second CODEC with efficiency.
The allocation judging unit may include: a release requesting unit for requesting the execution controlling unit, when a number of CODECs equal to the minimum are indicated as being xe2x80x9callocatedxe2x80x9d and this minimum number of CODECs are judged to be available to the requested process if a number of CODECs used in a currently-executed process is changed to the minimum number for the currently-executed process, to release the minimum number of CODECs for the requested process; and a third notifying unit for notifying, when the execution controlling unit has released the minimum number of CODECs for the requested process, the execution controlling unit that the minimum number of CODECs for the requested process is available for allocation to the requested process.
With this construction, when not every CODEC cannot be allocated to the requested process and the number of CODECs used in the currently-executed process can be changed, at least one of the CODECs currently having been used may be released so as to be allocated to the requested process. For example, when the recording process is requested during the execution of the two-channel reproduction process, the two-channel reproduction process is changed to the one-channel reproduction process so that the recording process can be executed.
The retaining unit may include: an unallocated hardware resource retaining unit for retaining information about each CODEC that is currently unallocated; an allocated hardware resource retaining unit for retaining information about each CODEC that is currently allocated; a first moving unit for moving the information about each CODEC that is judged by the allocation judging unit to be allocated to the requested process, from the unallocated hardware resource retaining unit into the allocated hardware resource retaining unit; and a second moving unit for moving, when receiving a notification that at least one of the first and second CODECs has been released, the CODEC from the allocated hardware resource retaining unit into the unallocated hardware resource retaining unit. The allocation judging unit may authorize allocation of each CODEC selected by the selecting unit when the information about the CODEC is retained in the unallocated hardware resource retaining unit.
With the stated construction, each CODEC can be easily judged to be allocated or unallocated. When the first CODEC is currently unallocated, the recording process can be executed using the first CODEC even when the recording process is currently being executed. Thus, the recording process can be effectively executed in parallel with the reproducing process.
The request receiving unit may further receive maximum and minimum numbers of CODECs to be used in the requested process, the maximum number indicating a preferred number of CODECs required for the requested process and the minimum number indicating a lowest number of CODECs required for the requested process. The allocation judging unit may include: a first notifying unit for notifying, when a number of CODECs equal to the maximum are retained in the unallocated hardware resource retaining unit, the execution controlling unit that the maximum number of CODECs are available for allocation to the requested process; and a second notifying unit for notifying, when the number of CODECs retained in the unallocated hardware resource retaining unit is below the maximum number but a number of CODECs retained in the unallocated hardware resource retaining unit is at least equal to the minimum number, the execution controlling unit that the minimum number of CODECs for the requested process are available for allocation.
With this construction, in accordance with the current use state for each CODEC, the requested process is authorized to be executed using the first CODEC and/or the second CODEC counted as the maximum or minimum number. Accordingly, the first and second CODECs can be effectively used.
The first moving unit may write a name of the requested process into the allocated hardware resource retaining unit when moving each CODEC allocated to the requested process from the unallocated hardware resource retaining unit into the allocated hardware resource retaining unit. The allocation judging unit may include: a release requesting unit for requesting the execution controlling unit, when a number of CODECs equal to the minimum required for the requested process is retained in the allocated hardware resource retaining unit and this minimum number of CODECs are judged to be available for allocation to the requested process if a number of CODECs used in a currently-executed process is changed to the minimum number for the currently-executed process, to release the minimum number for the requested process; and a third notifying unit for notifying, when the execution controlling unit has released the minimum number of CODECs for the requested process and the second moving unit moves each released CODEC from the allocated hardware resource retaining unit into the unallocated hardware resource retaining unit, the execution controlling unit that the minimum number of CODECs for the requested process are available for allocation to the requested process.
With this construction, when not every CODEC cannot be allocated to the requested process and the number of CODECs used in the currently-executed process can be changed, at least one of the CODECs currently having been used may be released so to as to be allocated to the requested process. Accordingly, the first and second CODECs can be more effectively used.
The retaining unit may include: an unallocated hardware resource retaining unit for retaining information for each CODEC that is currently unallocated; a deleting unit for deleting the information about each CODEC that is judged by the allocation judging unit to be available to the requested process, from the unallocated hardware resource retaining unit; a writing unit for writing, when receiving a notification that each allocated CODEC has been released, the CODEC into the unallocated hardware resource retaining unit. The allocation judging unit may authorize allocation of each CODEC to the requested process when the CODEC is retained in the unallocated hardware resource retaining unit.
With this construction, each CODEC that is currently unallocated can be always comprehended, and the reproducing and recording processes can be executed in parallel using the first and second CODECs without any conflict.
The second object of the present invention can be also achieved by a digital video reproducing/recording apparatus that is capable of executing a digital video reproducing process and a digital video recording process, the digital video reproducing/recording apparatus made up of: a storing unit for storing encoded digital video data; a plurality of first CODECs that each perform one of (1) encoding digital video data and storing the encoded digital video data into the storing unit and (2) reading the encoded digital video data from the storing unit and decoding the read encoded digital video data; a plurality of second CODECs that each read the encoded digital video data from the storing unit and decode the read encoded digital video data; a retaining unit for retaining information that specifies a process that is currently being executed; a request receiving unit for receiving a request for an execution of a process from a user; a judging unit for judging whether the first and second CODECs are available to both the process requested by the user and the process currently being executed, by referring to the information retained in the retaining unit; and an execution controlling unit for controlling, if the judging unit has judged that the first and second CODECs are available to both of the processes, the execution of the process requested by the user.
With this construction, two or more number of reproducing or recording processes, or varying combinations of both the reproducing and recording processes can be executed in parallel using the plurality of CODECs.
The second object of the present invention can be also achieved by a computer readable record medium used in a digital video reproducing/recording apparatus that is made up of: a storing unit for storing encoded digital video data; a first CODEC for performing one of (1) encoding digital video data and storing the encoded digital video data into the storing unit and (2) reading the encoded digital video data from the storing unit and decoding the read encoded digital video data; and a second CODEC for reading the encoded digital video data from the storing unit and decoding the read encoded digital video data, the computer readable record medium including a program that has a computer perform functions of the following unit: a retaining unit for retaining information that specifies a process that is currently being executed; a request receiving unit for receiving a request for an execution of a process from a user; a judging unit for judging whether the first and second CODECs are available to both the process requested by the user and the process currently being executed, by referring to the information retained in the retaining unit; and an execution controlling unit for controlling, if the judging unit has judged that the first and second CODECs are available to both of the processes, the execution of the process requested by the user.
A digital video reproducing/recording apparatus that cannot execute the reproducing and recording processes in parallel can do it using this construction.